package org.v2ray.rocket.proxy.support.user

import org.v2ray.rocket.proxy.support.base.mvi.MviIntent

sealed class UserIntent : MviIntent {
    /**
     * 发送验证码
     */
    data class SendVerifyCode(val phoneNumber: String) : UserIntent()
    
    /**
     * 密码登录
     */
    data class LoginByPassword(val phoneNumber: String, val password: String) : UserIntent()
    
    /**
     * 验证码登录
     */
    data class LoginBySmsCode(val phoneNumber: String, val smsCode: String) : UserIntent()
    
    /**
     * 注册
     */
    data class Register(
        val phoneNumber: String,
        val smsCode: String,
        val password: String,
        val imei: String? = null,
        val androidID: String? = null,
        val mac: String? = null
    ) : UserIntent()
    
    /**
     * 重置密码
     */
    data class ResetPassword(val phoneNumber: String, val smsCode: String, val password: String) : UserIntent()
    
    /**
     * 切换登录方式
     */
    object SwitchLoginType : UserIntent()
}